#include <iostream>
using std::cout;
using std::endl;

//函数重载
//在同一个作用域下可以定义一些同名的函数
//不用以函数返回类型作为参考
//只要函数的参数的个数、类型、顺序任一方面有不同即可
int add(int x,int y = 0){
    cout << "函数一" << endl;
    return x + y;
}

double add(double x,double y){
    cout << "函数二" << endl;
    return x + y;
}

double add(double x,int y){
    cout << "函数三" << endl;
    return x + y;
}

/* extern "C" */
/* { */

//函数重载时，给函数参数赋默认值
//可能会带来隐患
int add(int x,int y,int z){
    cout << "函数四" << endl;
    return x + y + z;
}

double add(int x,double y){
    cout << "函数五" << endl;
    return x + y;
}
/* } */



/* void add(int x,double y){ */
/*     cout << "函数六" << endl; */
/* } */

void test0(){
    /* cout << add(6,7) << endl; */
    cout << add(6.5,7.8) << endl;
    cout << add(6.5,7) << endl;
}

int main(void){
    test0();
    return 0;
}
